/*
 * Copyright 2004-2005 asoft
 * 本软件及其所有拷贝的名称，与光盘上或本软件中注明的公司同在。
 * 本软件及文档享有版权，并受国家版权法及国际协约条款的保护。
 * 您不可以从本软件中去掉其版权声明；并保证为本软件的拷贝（本部或部分）* 复制版权声明。
 * 您同意制止以任何形式非法拷贝本软件及文档。
 * 版权信息参见：
 *      http://www.asoft.cn/licenses
 */

package com.asoft.common.logs.manager;

import java.sql.Timestamp;
import java.util.Iterator;
import java.util.List;

import org.apache.log4j.Logger;

import com.asoft.common.base.manager.BaseManager;
import com.asoft.common.logs.dao.OperatingLogDAO;

/**
 * <p>Title: 操作日志</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: asoft</p>
 * @ $Author: author $
 * @ $Date: 2005/03/14 11:32:01 $
 * @ $Revision: 1.5 $
 * @ created in 2005-11-14
 *
 */

public class OperatingLogManagerimp extends BaseManager
                                    implements OperatingLogManager

{
        static Logger logger = Logger.getLogger(OperatingLogManagerimp.class);

        /** 操作日志DAO */
        private OperatingLogDAO operatingLogDAO;

        public void setOperatingLogDAO(OperatingLogDAO operatingLogDAO)
        {
                // 设置BaseManager.dao
                super.setDAO(operatingLogDAO);
                this.operatingLogDAO = operatingLogDAO;
        }

        /** 获取所有模块 */
        public List findModules()
        {
                return this.operatingLogDAO.findModules();
        }

        /** 获取所有实体 */
        public List findModels()
        {
                return this.operatingLogDAO.findModels();
        }

        /** 获取所有操作服务 */
        public List findServices()
        {
                return this.operatingLogDAO.findServices();
        }

        /**
         * 描述:查询操作日志s
         *
         * @ param: moduleId 模块id（包名）
         * @ param: modelId 实体id（包名）
         * @ param: serviceId 服务id（类名）
         * @ param: result 操作结果（成功or失败）
         * @ param: operatorName 操作人姓名
         * @ param: detail 操作细节
         * @ param: startTime 操作时间起（查询操作时间段）
         * @ param: endTime 操作时间止（查询操作时间段）
         * @ param: orderBy 排序属性（hql用）
         * @ param: sortType 排序方式（asc or desc）
         * @ Exception:
         * @ return model集合
         */
        public List findOperatingLogs(String moduleId,
                                          String modelId,
                                          String serviceId,
                                          String result,
                                          String operatorName,
                                          String detail,
                                          Timestamp startTime,
                                          Timestamp endTime,
                                          String orderBy,
                                          String sortType)
        {
                return this.operatingLogDAO.findOperatingLogs(moduleId,
                                                              modelId,
                                                              serviceId,
                                                              result,
                                                              operatorName,
                                                              detail,
                                                              startTime,
                                                              endTime,
                                                              orderBy,
                                                              sortType);
        }

}
